
## Задача 32 Тип 27 [№ 45261](https://inf-ege.sdamgia.ru/problem?id=47231)

У медицинской компании есть N пунктов приёма биоматериалов на анализ. 

Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. 

Известно количество пробирок, которое ежедневно принимают в каждом из пунктов. 

Пробирки перевозят в специальных транспортировочных контейнерах вместимостью не более 36 штук. 

Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в лаборатории.

Стоимость перевозки биоматериалов равна произведению расстояния от пункта до лаборатории на количество контейнеров с пробирками.

Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в лабораторию. 

Лабораторию расположили в одном из пунктов приёма биоматериалов таким образом, что общая стоимость доставки биоматериалов из всех пунктов минимальна.

Определите минимальную общую стоимость доставки биоматериалов из всех пунктов приёма в лабораторию.

### Входные данные

[27_A.txt](27_A.txt)


[27_B.txt](27_B.txt)


Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит число N (1 ≤ N ≤ 10 000 000)  — количество пунктов приёма биоматериалов.

В каждой из следующих N строк находится два числа: номер пункта и количество пробирок в этом пункте (все числа натуральные, количество пробирок в каждом пункте не превышает 1000).

Пункты перечислены в порядке их расположения вдоль дороги, начиная от нулевой отметки.

В ответе укажите два числа: сначала значение искомой величины для файла А, затем  — для файла B.

Пример организации исходных данных во входном файле:
```
6
1 100
2 200
5 4
7 3
8 2
10 190
```
При таких исходных данных и вместимости транспортировочного контейнера, составляющей 96 пробирок, компании выгодно открыть лабораторию в пункте 2. В этом случае сумма транспортных затрат составит:
```
1 * 2 + 3 * 1 + 5 * 1 + 6 * 1 + 8 * 2
```


## Решение на 1 балл
```python
from math import ceil
f = open('27/32 медкомпания биоматериал/27_A.txt')
N = int(f.readline())

points = [
    [next(data), ceil(next(data) / 36)]
    for line in f
    if (data := map(int, line.split()))]


min_price = 10**10
for curren_point in points:   
    dist = curren_point[0]
    cur_price = 0
    for point in points:
        if curren_point != point:
            cur_price += abs(point[0]-dist) * point[1]            
    min_price=min(min_price, cur_price)
  
print(min_price)

```

## Решение на 2 балла
```python
from math import ceil
# f = open('27/32 (медкомпания биоматериал)/txt.txt')
f = open('27/32 (медкомпания биоматериал)/27_B.txt')
N = int(f.readline())

points = [
    [next(data), ceil(next(data) / 36)]
    for line in f
    if (data := map(int, line.split()))]

r_sum = 0
l_sum = 0

prices = [0] * N
for i in range(1, N):
    prices[0] += (points[i][0] - points[0][0]) * points[i][1]
    r_sum += points[i][1]

# print(r_sum)

for i in range(1, N):
    l_sum += points[i - 1][1]
    prices[i] = prices[i - 1] - r_sum * (points[i][0] - points[i - 1][0]) + l_sum * (points[i][0] - points[i - 1][0])
    r_sum -= points[i][1]

print(min(prices))

```
